知ってる方は無視してください(:3 」∠ )
信号処理の基本の定理
読み取りたい信号の周波数 f の 2倍以上の周波数 fs で読み取らないとダメ f <= 2fs
守らないとエイリアシングが起きる 雑に言うとこれ以下の周波数でサンプリングすると波形が変わる
画像引用元:https://ednjapan.com/edn/articles/1207/27/news003.html
サンプリング定理を守らないサンプリンレートで サンプリングするとエイリアシングが起こる 画像引用元:https://ednjapan.com/edn/articles/1207/27/news003.html
階段の1段を1つの波としてみる 階段の1段の高さが2ピクセル以下になるまで縮小すると 投影された画面上でサンプリング定理を満たさなくなる
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
(表示画面次第ではあるが)
すでにエイリアシングが起きている(はず)
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
windows10標準の画像閲覧アプリで開いた状態の スクリーンショット(縮小されて表示されている)
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
一部を拡大
階段のように横線しかない(レンガなので縦もあるが無視) 画像で斜めの模様が発生 サンプリング定理を守らない高周波成分が エイリアシングを起こして低周波のノイズとして混入 →実際とは違うサンプリング結果に(間違ったデータになる)
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
別の例として細かい模様のあるものを動かした動画 (mp4版) を用意したのでご覧ください
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
gif版 (pdfにしたら動かない)
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
エイリアシングは何の対策もなしに 何かを観測したら起きる(人間の目や耳でも起きうる)
例) * 録音(普通対策されている) * 静止画撮影(モアレ効果とも呼ばれる) * 動画撮影(静止画で起きるエイリアシングも同時に発生)
(影を見たらわかりますが) 熱で溶けたわけではないです(:3 」∠ )
画像 : CMOS + rolling shutter = floppy airplane propeller
画像 : Airplane Prop + CMOS Rolling Shutter = WTF
なぜこんなことが起きるのか * ギターの弦 ストロボ効果 * プロペラ プロペラ効果
動画ではシャッタースピードや露光時間が エイリアシングの原因となりうる
動画でも起きる
1. サンプリングレートを変える * 高い周波数が含まれる信号を読み取る時は 観測したい信号に含まれる高周波数の2倍以上の周波数の サンプリングレートで観測しないとダメ → サンプリングレートを高くする
サンプリングレートが変えられるなら変える
実際はそもそもサンプリングレートを変えられなかったり、 替えてもデータ容量が大きくなったりといった問題が...
2. フィルターをかける * 任意の信号を一定のサンプリングレートで読み取る時は 読み取り間隔の半分より高い高周波が含まれていてはダメ → LPF(Low Pass Filter : 低周波通過フィルター)に通して 高周波成分カットする
エイリアシングを防止する目的でかけられるフィルターを アンチエイリアシングフィルターと呼ぶ
普通アンチエイリアシングフィルターは必ずかける。 サンプリング周波数は必要に応じて決める。
ぼかしてから縮小する。(縮小してからぼかすのは×) FF14の画像は画面に表示されている時点で すでにエイリアシングが起きているのでそこからぼかしても...
一度エイリアシングが起きたら除去できない 元データから高周波成分を除去する必要がある .
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
一度エイリアシングが起きたら除去できない 元データから高周波成分を除去する必要がある エイリアシングの起きてない部分をぼかして縮小するのは大丈夫
画像 : Copyright (C) 2010 - 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
サンプリングレートは低いと高周波成分が失われる分 音質が悪くなる。ただし高すぎても無駄
ハイレゾは自己満足の世界なので 好きにしたらいいと思います(:3 」∠ )
マイクに8kHzより高い音を遮断するLPFが必須
大体こんな感じ アナログ電子回路の世界は利得を稼ぐのが大変
デジタル信号は高次のフィルターが簡単に作れる →利得が稼げる
n+1サンプリング毎に平均をとると 簡単なn次のLPFになる(FIRフィルタ)
$$ g(x) = \frac{\sum^{N-1}_{i=0}f(x+i)}{N} $$
時数を増やすと利得が稼ぎやすいが レイテンシーが増える
基本はフーリエ変換
音のような周期関数→周波数の関数に変換する 勿論逆変換もできる 音波の信号をフーリエ変換して周波数の時間変化の関数に変換 周波数の時間変化の関数を逆フーリエ変換して音の信号に戻せる
注)位相の情報がなくなるが人間の耳にはわからない
$$ \mathcal{F}(\xi) = \int_{\mathbb{R}} f(x)e^{-2\pi i x \cdot \xi} dx $$
関数$f(x)$を 周波数の関数$\mathcal{F}(\xi)$に変換する
フーリエ変換は実数全体に対して定義されている コンピューターでは離散フーリエ変換を行う
$$ F(t) = \sum^{N-1}_{x=0} f(x)e^{-i \frac{2 \pi x t}{N}} $$
離散信号$f(x)$を 離散的な周波数の関数$F(t)$に変換する。
実際には高速フーリエ変換(FFT)を使う
幾何的に言えば、 ある2つの関数の片方を並行移動させつつ重ね合わせた時、 一致する部分面積を足し合わせたもの
wikipediaがわかりやすい https://ja.wikipedia.org/wiki/%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF
$$ \mathcal{F} (\omega * f) = \mathcal{F}\omega * \mathcal{F}f $$
波形の部分部分を切り出して周波数解析にかける 逆変換が成り立つなら正しく周波数解析できている
N点のサンプリング毎に切り出す → ただ切り出すと逆変換での誤差が大きくなる 例)音を周波数解析して、それを音に戻して聞いてみる →ノイズが混じる つまり正しく周波数解析できない
切り出した区間ごとに周波数解析
→その区間のに含まれる信号の周波数がわかる
.
.
でも実際には両端が0ではないため
0からいきなり変化する傾き$\pm \infty$の点ができてしまう
→大きな傾きを表現するには高い周波数が必要
→解析された周波数にノイズが発生してしまう
窓関数をかけていなかったので両端にインパルスが生じていた
重ね合わせるとノイズの影響を抑えて 元の信号を復元できる
$$ f(x) = \left{ \begin{array}{ll} 1 , \text{if } a \leq x \leq b \ 0 , \text{othewise} \end{array} \right. $$
ただ信号を$a$~$b$の区間で切り取るだけ
普通 ハニング窓や、ハミング窓をつかう
$$ \omega(x) = o.5 - 0.5 \cos 2 \pi x, \text{if } 0 \leq x \leq 1 $$
周波数分解能が良く、ダイナミック・レンジが狭い $$ \omega(x) = o.54 - 0.46 \cos 2 \pi x, \text{if } 0 \leq x \leq 1 $$
切り出した信号の両端が0に近いため、 重ねつなぎ合わせたとき急激な変化が起きない
画像引用元:http://www.fbs.osaka-u.ac.jp/labs/ishijima/FFT-06.html
鼓膜とかの奥にある音を電気信号に変える場所 中はリンパ液が詰まっている 巻いてるところ伸ばすと3cmくらい 周りは頭蓋骨 骨の中にあるので研究が進めずらい
面倒になって手書きしました┏( .o. ┏ ) ┓
音源の種類で分類 * 有声音 声帯の振動を音源とする音 ♂ 100~200Hz ♀ 200~400Hz 実はわりと何でもいい 声帯を失った人向けに 震える機械を喉にあてて声を出せる製品がある
音声学的な分類では、母音と子音がある
子音 基本的に無声音
母音 有声音の成分がおおい 判別にはフォルマントが使われる
~300Hz :声帯の基本振動は含まれない
3.4kHz~:子音の帯域(4k~14kHz)の大部分は含まれない
母音が同じ、子音が違う2つの発声の区別はできるのか?
-->
「sailing (航海)」の「s」を「failing (欠陥)」の「f」と区別するための高周波数音は 4 kHz~14 kHz の間に集中しています。この部分の周波数が欠落すると、相手が何を言ったのか理解する手がかりがなくなります。つまり、「my cousin is sailing in college (私のいとこは大学でヨット部に入っています)」と「my cousin is failing in college (私のいとこは大学で落第しそうになっています)」の違いを従来の電話で伝えるには、文脈 (たとえば、いとこがよくヨットの練習をしていると知っているなど) を加味することが不可欠だということです。
記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。